package com.jige.jigetodo.model.vo;

import cn.hutool.core.bean.BeanUtil;
import com.jige.jigetodo.common.ErrorCode;
import com.jige.jigetodo.exception.ThrowUtils;
import com.jige.jigetodo.model.entity.Task;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 任务管理表VO
 */
@Data
public class TaskVO implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    private Long id;
    /**
     * 任务标题
     */
    private String title;
    /**
     * 任务描述
     */
    private String description;
    /**
     * 任务状态(high-高，medium-中，low-低)
     */
    private String priority;
    /**
     * 任务状态：inProgress进行中，finished-已完成，outDate-过期)
     */
    private String status;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 截止日期
     */
    private Date deadTime;

    /**
     * 对象转vo
     * @param task
     * @return
     */
    public TaskVO objToVO(Task task){
        ThrowUtils.throwIf(task == null, ErrorCode.PARAMS_ERROR,"任务不存在");
        TaskVO taskVO = new TaskVO();
        BeanUtil.copyProperties(task,taskVO);
        return taskVO;
    }

    /**
     * vo转对象
     * @param taskVO
     * @return
     */
    public Task voToObj(TaskVO taskVO){
        ThrowUtils.throwIf(taskVO==null,ErrorCode.PARAMS_ERROR);
        Task task = new Task();
        BeanUtil.copyProperties(taskVO,task);
        return task;
    }
}